package ar.edu.utn.frsf.tpae.a2013.g03.persistencia.model;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;

/**
 * Objeto del modelo de datos (persistente). Representa un usuario.
 * 
 * @author Daniel Solis
 */

@Entity
@Table(name = "usr")
@Inheritance(strategy=InheritanceType.JOINED)
public abstract class Usuario {

	@Id
	@Column(name = "usr_id")
	@SequenceGenerator(name = "usr_gen", sequenceName = "seq_usr", allocationSize = 1)
	@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "usr_gen")
	private Integer idUsuario;
	
	@Column(name = "usr_usr", unique = true, nullable = false)
	private String usuario;
	
	@Column(name = "usr_pwd", nullable = false)
	private String contrasenia;
	
	@Column(name = "usr_nom", nullable = false)
	private String nombres;
	
	@Column(name = "usr_ape", nullable = false)
	private String apellido;
	
	@Column(name = "usr_dni", unique = true, nullable = false)
	private String dni;
	
	Usuario(){
		idUsuario = null;
		usuario = null;
		contrasenia = null;
		nombres = null;
		apellido = null;
		dni = null;
	}
	
	Usuario(Integer idUsuario, String usuario, String contrasenia, String nombres, String apellido, 
			String dni){
		this.idUsuario = idUsuario;
		this.usuario = usuario;
		this.contrasenia = contrasenia;
		this.nombres = nombres;
		this.apellido = apellido;
		this.dni = dni;
	}
	
	public String getNombres() {
		return nombres;
	}
	public void setNombres(String nombres) {
		this.nombres = nombres;
	}
	public String getApellido() {
		return apellido;
	}
	public void setApellido(String apellido) {
		this.apellido = apellido;
	}
	public String getDni() {
		return dni;
	}
	public void setDni(String dni) {
		this.dni = dni;
	}
	public String getContrasenia() {
		return contrasenia;
	}
	public void setContrasenia(String contrasenia) {
		this.contrasenia = contrasenia;
	}
	public Integer getIdUsuario() {
		return idUsuario;
	}
	public void setIdUsuario(Integer idUsuario) {
		this.idUsuario = idUsuario;
	}
	public String getUsuario() {
		return usuario;
	}
	public void setUsuario(String usuario) {
		this.usuario = usuario;
	}
	
}
